A computer system includes a processor that executes a process, a main storage memory that stores data and program, and an input/output port that inputs and outputs data. Many computer systems switch into standby mode, in which power consumption is small, when there is no process to be executed by the processor, such as when a computer waits for input data. When a computer system in standby mode is notified that input data occurs from outside by means of an interrupt or the like, the computer system switches into execution mode and restarts a process.
The computer system in standby mode stops circuit operation, lowers operation clock frequency that drives the circuit, lowers power supply voltage supplied to the circuit, or stops power supply to the circuit, so that the power consumption is reduced. However, data necessary when the standby mode is switched to the execution mode and the process is restarted is required to be stored during the standby mode.
Therefore, for example, when the execution mode is switched to the standby mode, data necessary to restart the process is written from a volatile register or a main storage memory (for example, DRAM) to a nonvolatile storage device such as a flash memory or an HDD. In this method, power supply to the register and the main storage memory can be stopped during the standby mode, so that the power consumption can be reduced. However, it is necessary to restore data from the nonvolatile storage device to the register and the main storage memory when the standby mode is switched to the execution mode, so that there is a problem that it takes time to restart the process.
A method is known in which a nonvolatile memory that can be rapidly and randomly accessed such as MRAM and FeRAM is used as a main storage memory. In this method, data necessary to restart the process is not deleted even when power supply to the main storage memory is stopped during the standby mode, so that the power consumption can be reduced. However, if the capacity of the nonvolatile memory is large, the time necessary to start the nonvolatile memory and the time necessary to stabilize peripheral circuits of a memory cell are long, so that there is a problem that it takes time to be able to actually restart the process after the standby mode is switched to the execution mode.